package com.cskaoyan.catmall.controller.wx;

import com.cskaoyan.catmall.model.bo.WxCommentPostBo;
import com.cskaoyan.catmall.model.vo.*;
import com.cskaoyan.catmall.service.WxCommentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * 创建日期: 2022-01-10-14-17
 * author : XGQ
 * description: 评论
 */
@RestController
@RequestMapping("wx/comment")
public class WxCommentController {

    @Autowired
    WxCommentService wxCommentService;

    /**
     * @description 获取评论页面
     * @author XGQ
     * @date 2022/01/10 23:36
     * @param
     * @param valueId 商品id
     * @param type 评论类型，如果type=0，则是商品评论；如果是type=1，则是专题评论
     * @param limit 一页最多项
     * @param page 第几页
     * @param showType 1是有图，0是全部
     * @return com.cskaoyan.catmall.model.vo.BaseRespVo<com.cskaoyan.catmall.model.vo.CommentListVo>
     */
    @GetMapping("list")
    public BaseRespVo<CommentListVo> getCommentList(Integer valueId, Integer type, Integer limit, Integer page, Integer showType) {

        CommentListVo commentListVo = wxCommentService.getCommentList(valueId, type, limit, page, showType);

        return BaseRespVo.ok(commentListVo);
    }

    /**
     * @description 全部评论
     * @author XGQ
     * @date 2022/01/10 23:41
     * @param
     * @param valueId 商品id
     * @param type 评论类型，如果type=0，则是商品评论；如果是type=1，则是专题评论
     * @return com.cskaoyan.catmall.model.vo.BaseRespVo<com.cskaoyan.catmall.model.vo.WxCountVo>
     */
    @GetMapping("count")
    public BaseRespVo<WxCountVo> getCommentCount(Integer valueId, Integer type) {
        WxCountVo wxCountVo = wxCommentService.getCommentCount(valueId,type);
        return BaseRespVo.ok(wxCountVo);
    }

    /**
     * @description
     * @author XGQ
     * @date 2022/01/11 14:09
     * @param
     * @param wxCommentPostBo
     * @return com.cskaoyan.catmall.model.vo.BaseRespVo<com.cskaoyan.catmall.model.vo.WxCommentPostVo>
     */
    @PostMapping("post")
    public BaseRespVo<WxCommentPostVo> getCommentPost(@RequestBody @Validated WxCommentPostBo wxCommentPostBo, BindingResult bindingResult){

        WxCommentPostVo wxCommentPostVo = wxCommentService.getCommentPost(wxCommentPostBo);
        return BaseRespVo.ok(wxCommentPostVo);
    }
}
